<?php
namespace app\index\controller;
use phpmailer\PHPMailer;
use think\Session;
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
class Index 
{
    public function index()
        {	
            return view('index');
        }
        //用户手机注册
    public function registerphone()
        {

            return view('registerphone');
         }
      
       //用户邮箱注册
   
        public function register(){
            
           return view('registeremail');
             
        }
    //发送手机验证码  
  public function sendcode(){
           $code=rand(10000,30000);//随机生成的验证码
          Session::set('code',$code);   
            $mobile=$_POST['mobile'];//获取前端的手机号
     require_once APP_PATH.'/Api/api_sdk/vendor/autoload.php';
        Config::load();             //加载区域结点配置

        $accessKeyId = "LTAItw*********";//阿里云的keyid 需要修改
        $accessKeySecret = "rSbxWS68eX0va********";//阿里云的keysecret 需要修改
        $templateParam = array("number"=>$code);    //模板变量替换              假如要用验证码的话 需要把你短信模板的验证码参数改正
        $templateCode = "SMS_92735017";   //短信模板ID  需要修改
        $signName="";//签名 需要修改

        //短信API产品名（短信产品名固定，无需修改）
        $product = "Dysmsapi";
        //短信API产品域名（接口地址固定，无需修改）
        $domain = "dysmsapi.aliyuncs.com";
        //暂时不支持多Region（目前仅支持cn-hangzhou请勿修改）
        $region = "cn-hangzhou";

        // 初始化用户Profile实例
        $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
        // 增加服务结点
        DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
        // 初始化AcsClient用于发起请求
        $acsClient= new DefaultAcsClient($profile);

        // 初始化SendSmsRequest实例用于设置发送短信的参数
        $request = new SendSmsRequest();
        // 必填，设置雉短信接收号码
        $request->setPhoneNumbers($mobile);

        // 必填，设置签名名称
        $request->setSignName($signName);

        // 必填，设置模板CODE
        $request->setTemplateCode($templateCode);

        // 可选，设置模板参数
        if($templateParam) {
            $request->setTemplateParam(json_encode($templateParam));
        }

        //发起访问请求
        $acsResponse = $acsClient->getAcsResponse($request);

        //返回请求结果
         $result = json_encode($acsResponse);//json格式
       if($result)
           return 1;
       else
           return 0;
        }
        //发送邮箱验证码
        //发送邮箱验证码  
        public function email()  
        {  
              $username=trim($_POST['username']);
              $password=trim($_POST['password']);
              $email=trim($_POST['email']);
              //判断用户名是否存在*代码省略
              //通过邮箱从数据库中查找邮箱是否存在*代码省略
              //判断邮箱合法性
            $isEmail = filter_var($email, FILTER_VALIDATE_EMAIL);  
            if ($isEmail === false) { 
                 echo '<script>alert("邮箱名非法！");window.history.go(-1);</script>'; 
                return false;
            } 
            //注册时间
            $createtime = time();
             $token = md5($username.$password.$createtime); //创建用于激活识别码 
            $token_exptime = time()+60*60*24;//过期时间为24小时后 
            $password=md5(md5($password).'WOKJEn');//加盐，加个固定的
            //将数据存入数据库中，然后发送邮件 激活码也存在数据库中
            $toemail =$email;//定义收件人的邮箱  
  
            $mail = new PHPMailer();  
  
            $mail->isSMTP();// 使用SMTP服务  
            $mail->CharSet = "utf8";// 编码格式为utf8，不设置编码的话，中文会出现乱码  
            $mail->Host = "smtp.163.com";// 发送方的SMTP服务器地址  
            $mail->SMTPAuth = true;// 是否使用身份验证  
            $mail->Username = "m15555186321@163.com";//网易邮箱
            $mail->Password = "";//密码
            $mail->SMTPSecure = "ssl";
            $mail->Port = 465;// 163邮箱的ssl协议方式端口号是465/994  
  
            $mail->setFrom("m15555186321@163.com","可以改");// 设置发件人信息，如邮件格式说明中的发件人，这里会显示为Mailer(xxxx@163.com），Mailer是当做名字显示  
            $mail->addAddress($toemail,'Wang');// 设置收件人信息，如邮件格式说明中的收件人，这里会显示为Liang(yyyy@163.com)  
            $mail->addReplyTo("m15555186321@163.com","Reply");// 设置回复人信息，指的是收件人收到邮件后，如果要回复，回复邮件将发送到的邮箱地址  
            $mail->Subject = "易云停车邮件";// 邮件标题  
            $mail->Body = "亲爱的".$username."：感谢您在我站注册了新帐号.请点击链接激活您的帐号. 
            http://localhost/thinkphp5-wz/public/index/index/active?verify=".$token."
            如果以上链接无法点击，请将它复制到你的浏览器地址栏中进入访问。";
  
            if(!$mail->send()){// 发送邮件  
                echo "Message could not be sent.";  
                echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息  
            }else{  
                echo "发送邮件成功,请登录邮箱激活";
        }  
        }
        //简单验证手机验证码
        public function phone()  
        {  
               $username=trim($_POST['mobile']);
              $code= Session::get('code');   
               $verify=trim($_POST['verify']);
               //echo $code;
            if($verify!=$code){
              echo("验证码错误");
            }else{
                echo("验证码正确");
            }
             
          
        }
        //验证邮箱激活码
        public function active(){
       $verify = stripslashes(trim($_GET['verify'])); 
         $nowtime = time(); 
       //从数据库中查找出未激活验证码进行比较假设为$code=1234
         $code='1234';
            if($verify==$code){
                echo "激活成功";
                
            }else{
                echo "激活失败";
          
                
            }
            /**
             * 验证码有效期暂时就不用了
             */
        }
}
